package com.company;

//代理模式
//提供sellcar方法的接口类 抽象角色
public class CarFactoryImp
{
    public void sellCar(){}
}

//汽车厂商的实现类 在其中实现了sellCar的方法 真实角色
class CarFactory extends CarFactoryImp
{
    public void sellCar()
    {
        System.out.println("Sell Car");
    }
}

//汽车代理商的实现类 代理商会调用厂商的sellCar() 代理角色
class CarProxy extends CarFactoryImp
{
    private CarFactoryImp target;
    public void sellCar()
    {
        if(target==null)
        {
            //Java多态
            target=new CarFactory();
        }
        target.sellCar();
    }
}
